package com.pf.selection.annotation;

import com.pf.selection.annotation.sort.DefaultSelectionEchoSort;
import com.pf.selection.annotation.sort.SelectionEchoSort;
import com.pf.selection.enums.SelectionSortEnum;

import java.lang.annotation.*;

/**
 * 下拉选择字段排序
 *
 * @author PanFei
 * @version 1.0.0
 * @createTime 2023/3/30 20:05
 */
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
public @interface SelectionFieldSort {

    /**
     * 排序方式
     *
     * @return
     */
    SelectionSortEnum sortBy() default SelectionSortEnum.CHINESE_SORT;

    /**
     * 指定排序字段值
     * <p>
     * 当SelectionSortEnum值为 FIELD_VALUE_SORT 时，需使用该字段指定排序
     *
     * @return
     */
    String[] fieldValueSort() default {};

    /**
     * 自定义排序
     * <p>
     * 当SelectionSortEnum值为 CUSTOM_SORT 时，需使用该字段指定排序
     *
     * @return
     */
    Class<? extends SelectionEchoSort> customSort() default DefaultSelectionEchoSort.class;
}
